<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 1.JS延迟加载的方式有哪些？（5）
        //在script标签里加上defer，或者将js脚本文件放在html文档最后面；
        // 2.前端 JavaScript 中的 ECMAScript、DOM、BOM 的含义；
        // ECMAScript是欧洲ECMA联盟制定的一下js语法规范和写法；js里的DOM总的来说就是操控html中的元素，给它们加一些各种各样的功能；
        // BOMB是Browser Object Model，浏览器对象模型。 简单地说，BOM和DOM一样，只不过DOM操作的是HTML中的元素，BOM是浏览器的API、操作的是浏览器（即控制浏览器的行为）
        // 3.JavaScript 的数据类型有哪些？
        // 字符串、数组、对象、布尔、undefined、null、数字、Symbol 
        // 4.如何进行数据类型的判断？
        // typeof、instanceof、Object.prototype.toString.call()
        // 5.null 和 undefined 的区别？什么时候会得到 undefined？
        // null是一个表示"无"的对象，转为数值时为0；undefined是一个表示"无"的原始值，转为数值时为NaN。当变量声明且没有赋值就会得到 undefined；
        // 6.如何理解 null == undefined 返回 true，null === undefined 返回 false？
        //双等是数据结果相等；而三等是数据类型、结果都相等；
        // 7.使用 continue 或 break 终止循环时，两种方式的区别是？
        // continue是跳出本次循环，下次符合条件的还会正常运行；break是跳出整个循环，等于该循环已运行完毕，不会在进去该循环；
        // 8.如何判断字符串内是否包含指定字符？
        // 用indexOf()检测
        // 9.请尽量列举出数组的方法，并且注明哪些方法会修改原数组，哪些不会；
        // 会改变原数组的方法有：push(), pop(), shift(), unshift(), reverse(),sort(),splice()
        // 不会改变原数组的方法有：concat()、slice()、join()、toString()等
        // 10. var、let、const 区别？
        // var定义的变量，没有块的概念，可以跨块访问, 不能跨函数访问。
        // let定义的变量，只能在块作用域里访问，不能跨块访问，也不能跨函数访问。
        // const用来定义常量，使用时必须初始化(即必须赋值)，只能在块作用域里访问，而且不能修改。
        // 12. 如何在 DOM2 级事件绑定上传递参数？
        // 用事件委托：Event.target
        // 13. 怎么阻止事件的进一步传播和默认事件？
        // 使用event.stopPropagation()起到阻止捕获和冒泡阶段中当前事件的进一步传播。使用event.preventDefault()可以取消默认事件
        // 14. 如何添加一个一次性事件？
        // 15. 同步和异步的区别?
        // "同步模式"就是后一个任务等待前一个任务结束，然后再执行，程序的执行顺序与任务的排列顺序是一致的、同步的。
        // "异步模式"则完全不同，每一个任务有一个或多个回调函数（callback），前一个任务结束后，不是执行后一个任务，而是执行回调函数，后一个任务则是不等前一个任务结束就执行，所以程序的执行顺序与任务的排列顺序是不一致的、异步的。
        // 16. AJAX是什么？AJAX是如何为页面注入灵魂？
        // AJAX全称为“Asynchronous JavaScript and XML”（异步JavaScript和XML），是一种创建交互式网页应用的网页开发技术
        // 17. 开发阶段的 AJAX 跨域有哪些解决方法，jsonp 的原理是什么
        // jsonp是使用方法回调的原理在网页里,你如果引入其他网页的js,那这个页面的js是可以调用你网页的代码的直接请求js 和 请求的动态页面(jsp,php,aspx)里输出的javascript代码 效果一样
        // 18. 请描述一下cookies，sessionStorage和localStorage的区别
        // cookies可以手动设置数据的存储时间、sessionStorage当浏览器被关闭生命周期就结束，localStorage只要不请空历史缓存该数据会永久存在
        // 19. 讲一下常见的异步场景，以及传统异步的诟病和解决方案
        // 20. 数组如何实现去重？请提供至少2种方法
        // for循环与foreach遍历
        // 21. 讲一下对基本数据类型 和 复杂/引用数据类型的理解？
        // 除了对象与数组为引用数据类型；其他都为基本数据类型
        // 22. this 的指向如何确定？
        //当函数被调用就确定了！谁调用该函数this就指向谁！this指向函数调用者；
        // 23. 谈谈对垃圾回收机制的认识
        // 24. 什么是回流重绘，如何进行优化？
        // 1.当节点树中的一部分因为元素的规模尺寸，布局，隐藏等改变而需要重新构建，称为回流（重排）
        // 2.当节点数中的一些元素需要更新属性，而这些属性只是影响元素的外观，风格，而不会影响布局的，成为重绘
        // 25. 请解释什么是事件代理
        // 事件代理（Event Delegation），又称之为事件委托。是 JavaScript 中常用绑定事件的常用技巧。顾名思义，“事件代理”即是把原本需要绑定的事件委托给父元素，让父元素担当事件监听的职务。事件代理的原理是DOM元素的事件冒泡。使用事件代理的好处是可以提高性能
        // 26. 谈谈你对渐进增强和优雅降级的理解(补充)
    </script>
</body>

</html>